package com.ksd.modules.ployv.controller;

import com.ksd.common.controller.BaseController;
import net.polyv.vod.v1.config.VodGlobalConfig;
import net.polyv.vod.v1.entity.manage.info.VodGetVideoRequest;
import net.polyv.vod.v1.entity.manage.info.VodGetVideoResponse;
import net.polyv.vod.v1.service.manage.impl.VodInfoServiceImpl;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
public class PolyvController extends BaseController {

    @PostMapping("/polyv/parse")
    public VodGetVideoResponse testGetVideo(@RequestParam("vid") String vid) {
        String userId = "6a43d19319";
        String secretKey = "hhsEZNvkj1";
        VodGlobalConfig.init(userId, secretKey);
        VodGetVideoRequest vodGetVideoRequest = new VodGetVideoRequest();
        VodGetVideoResponse vodGetVideoResponse = null;
        try {
            vodGetVideoRequest.setVideoId(vid);
            vodGetVideoResponse = new VodInfoServiceImpl().getVideo(vodGetVideoRequest);
            if (vodGetVideoResponse != null) {
                return vodGetVideoResponse;
            }
            return null;
        } catch (Exception e) {
            return null;
        }
    }

    public static void main(String[] args) {
        String userId = "6a43d19319";
        String secretKey = "hhsEZNvkj1";
        VodGlobalConfig.init(userId, secretKey);
        try {
            List<String> urls = new ArrayList<>();
            urls.add("6a43d193192104926f98ac038b6b74d6_6");
            urls.add("6a43d193195735af4cdd138644514796_6");
            urls.add("6a43d19319e2aac56dbbe983e90b0929_6");
            urls.add("6a43d193194bd227b0bba033d013c93d_6");
            urls.add("6a43d1931980d533b73ce0a9d61c9920_6");
            urls.add("6a43d1931974cc16ab733b8372bf85e9_6");
            urls.add("6a43d193198c110a312290dfa20b983b_6");
            urls.add("6a43d19319ce5c96bdac55a21ee6233e_6");
            urls.add("6a43d193191b818987f91283c8fccd7b_6");
            urls.add("6a43d19319b18f0985a54a30ca3c8351_6");
            urls.add("6a43d19319195d9846d765a087ab76cc_6");
            urls.add("6a43d19319dc41127fd839afefe79fee_6");
            urls.add("6a43d193198aeb0e95a5dd59c8b46052_6");
            urls.add("6a43d19319a228eeead01263333022f0_6");
            urls.add("6a43d1931934fc85bf6dd7c16a564368_6");
            urls.add("6a43d193199f02bc0aeb2b7cf9f7400d_6");
            urls.add("6a43d193195b6735e8d707702e9f184e_6");
            urls.add("6a43d1931998e2f980fb7125a10784d9_6");
            urls.add("6a43d19319ccf2e8fc8bbdf4d892c861_6");
            urls.add("6a43d1931931a4844c2e5743184f81ab_6");
            urls.add("6a43d193199023e5a4ecaee3e3359a2c_6");
            urls.add("6a43d193198fb7dfa2e04c96146ef938_6");
            urls.add("6a43d193198bc076d41aef6f89e648c6_6");
            urls.add("6a43d19319ebe9ec047a86a0f53b9768_6");
            urls.add("6a43d19319d60982e725b164c0664869_6");
            urls.add("6a43d19319b6c4907f8bb8e79c0d45f5_6");
            urls.add("6a43d19319a697bc85b8d502faff53ed_6");
            urls.add("6a43d1931985cb2c7def9cb53a10288d_6");
            urls.add("6a43d193194593aa1a5d1de4a69b5f64_6");
            urls.add("6a43d1931981bc919d7c1f7e5e8d53f6_6");
            urls.add("6a43d19319d8aa4a5b0a12a498c10eae_6");
            urls.add("6a43d193199c5dad0ac34b8a16160f7b_6");
            urls.add("6a43d19319600dec821c497c14711d42_6");
            urls.add("6a43d19319faa9e9a9266ee69261bb0d_6");
            urls.add("6a43d1931924bec281c6ba32778cbf9c_6");
            urls.add("6a43d19319fcc3f151ce2432076cb296_6");
            urls.add("6a43d193194127c06f0f0d5f4d47951d_6");
            urls.add("6a43d19319bc7e5582d6b8452e9297db_6");
            urls.add("6a43d193197ab061d2d7bf2819e9a7fa_6");
            urls.add("6a43d1931953e72c158babac81de9d13_6");
            urls.add("6a43d19319251849d7d99df8b608fb59_6");
            urls.add("6a43d193194ac37531ae68d8b5f5d735_6");
            urls.add("6a43d193192d18df4023ba53c572f9a4_6");
            urls.add("6a43d193198edd3357e5e2557f43ffbf_6");
            urls.add("6a43d1931917b059beaccc0f0211750f_6");
            urls.add("6a43d19319d2dfb75def51ad9f50ebf8_6");
            urls.add("6a43d193191d29ce8152b0218c598668_6");
            urls.add("6a43d19319f26a44edd0c44a38d46025_6");
            urls.add("6a43d19319c655d36f326529b5545a6a_6");
            urls.add("6a43d19319898cd690785e6a87ff5afe_6");
            urls.add("6a43d193194dc64fc74647d09875b914_6");
            urls.add("6a43d193193a40768ce8de2945d7a83a_6");
            urls.add("6a43d1931965616f981202db3f16f373_6");
            urls.add("6a43d1931963d3c3dcf9064ae38e30e7_6");
            urls.add("6a43d1931998a944101f983b30d3e3b2_6");
            urls.add("6a43d19319380a837d0823fc678ea05b_6");
            urls.add("6a43d193194a92ca095401dc95f5dff2_6");
            urls.add("6a43d1931903b8b4a91cfd662eeed006_6");
            urls.add("6a43d193193e93869ad7c7845b1093e1_6");
            urls.add("6a43d193198970d9ba299c25d814979f_6");
            urls.add("6a43d1931997554735065acf53b745cd_6");
            urls.add("6a43d19319e24836da465c580345b437_6");
            urls.add("6a43d193196ad90164c9c5ba731df2a7_6");
            urls.add("6a43d1931943bb1d3b9605039128cafd_6");
            urls.add("6a43d1931955f2deba86d20ec516d97a_6");
            urls.add("6a43d1931972503b26c21dd04dc5aad4_6");
            urls.add("6a43d193193c1a792e40fe651ffb53a3_6");
            urls.add("6a43d193191c0685f0503e9b44934a6a_6");
            urls.add("6a43d19319189b605a52994a3b1148a2_6");
            urls.add("6a43d19319383b64624e06467d35ff96_6");
            urls.add("6a43d193193c38ccb615fc296079018c_6");
            urls.add("6a43d1931999518bf4095f863cea21ff_6");
            urls.add("6a43d1931938baa50028e7e46d20d9f8_6");
            urls.add("6a43d19319afaf827921cf8ea511be32_6");
            urls.add("6a43d19319ab7d24ee32e0279fd34c07_6");
            urls.add("6a43d19319818879d4206b8edee669f8_6");
            urls.add("6a43d19319e7fdf94ecc5893d9ec8df5_6");
            urls.add("6a43d193197763a914bef64a8dcaff68_6");
            urls.add("6a43d193199bed46f5aa53f1dbbad44d_6");
            urls.add("6a43d19319bfe3203062ca718873c6b5_6");
            urls.add("6a43d19319fd988c3c43ad71b4acc5bf_6");
            urls.add("6a43d19319837b2c404f211d027b30e0_6");
            urls.add("6a43d193192c4ac7f8ce396b2e0e9c83_6");
            urls.add("6a43d1931965d5d1c35ef35686ed21e1_6");
            urls.add("6a43d193198d5d695f89f990f18f6133_6");
            urls.add("6a43d1931936777b46e020041ef67abd_6");
            urls.add("6a43d19319c57b7a3971e7ab52558bb7_6");
            urls.add("6a43d19319062cfb079ed5e797d20e7f_6");
            urls.add("6a43d19319dd2ea4207164b822c3a7d3_6");
            urls.add("6a43d193199a121e1a62847ff5b6302f_6");
            urls.add("6a43d1931951dbf0c1b129cf77c8d082_6");
            urls.add("6a43d19319e63b80bcf28fb0519f9b90_6");
            urls.add("6a43d19319a6758a42e3e1a7b90915a3_6");
            urls.add("6a43d19319b080cb6f40bdf99b560fcd_6");
            urls.add("6a43d193194dd2b1f7e779ac5db8fa00_6");
            urls.add("6a43d193198b7faf8d34661f402daf99_6");
            urls.add("6a43d19319e5f31bf8983b82d0d0c556_6");
            urls.add("6a43d1931989cd3d3a771363f83fc19b_6");
            urls.add("6a43d193197e72215533f63566e71c81_6");
            urls.add("6a43d1931932b2b20996cd9cf3b7b8bf_6");

            List<Map<String,String>> maps = new ArrayList<>();
            for (String url : urls) {
                VodGetVideoRequest vodGetVideoRequest = new VodGetVideoRequest();
                VodGetVideoResponse vodGetVideoResponse = null;
                vodGetVideoRequest.setVideoId(url);
                vodGetVideoResponse = new VodInfoServiceImpl().getVideo(vodGetVideoRequest);
                if (vodGetVideoResponse != null) {
                    Map<String,String> map = new HashMap<>();
                    map.put("vid",url);
                    map.put("url",vodGetVideoResponse.getDefaultVideo());
                    map.put("title",vodGetVideoResponse.getTitle());
                    maps.add(map);
                }
            }

            for (Map<String, String> map : maps) {
                String url = map.get("url");
                String substring = url.substring(url.lastIndexOf("/") + 1);
                Path oldFilePath = Paths.get("D:\\desgin\\"+substring);
                Path newFilePath = Paths.get("D:\\desgin\\"+map.get("title")+".mp4");
                try {
                    Files.move(oldFilePath, newFilePath, StandardCopyOption.REPLACE_EXISTING);
                    System.out.println("文件重命名成功！");
                } catch (IOException e) {
                    System.out.println("文件重命名失败：" + e.getMessage());
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
